In regards to database management, for example, big data processing is known. In big data processing, both an update process and an analyzing process are desirably carried out. Specifically, for example, capture of a large amount of petty settlement data via smart phones and instant analysis of the large amount of captured settlement data are desired. In addition, for example, capture of a large amount of sensor data and instant analysis of the large amount of captured sensor data are desired.
As database consistency control systems for carrying out both an update process and an analyzing process of such large amounts of data, MVCC (MultiVersion Concurrency Control) systems and, in particular, append-type MVCC systems, are known. According to a append-type MVCC system, when data in a database is updated, a new free area that differs from an area storing data prior to the update is reserved and the data after the update is written into the reserved free area. Data of an old version that is never referred to may be deleted.
In this manner, with the append-type MVCC system, a database management system (hereinafter, DBMS) must perform both version management and free area management. In other words, when the DBMS rewrites data in an area to which a certain logical address (for example, a logical address of a logical space (for example, a logical volume) recognized by the DBMS) belongs in a certain version, the DBMS finds a free area and issues a write request specifying a logical address belonging to the found free area. Therefore, a load of a processor executing the DBMS is high. For example, in free area management, processes such as acquisition and releasing a lock of a free area are required. When such processes occur, processing becomes queued as appropriate in a serializing process (for example, a sequential write).
Meanwhile, storage devices that may be adopted as a storage destination of a database include a so-called blockwise-erase storage device (a storage device which writes post-update data in an area different from an area storing pre-update data) such as a storage device (hereinafter, an FM device) having a NAND flash memory (NAND-FM). With an FM device, data is erased in block units and input and output in page units. Generally, an FM device has a wear leveling function for extending a write-in life of an FM. According to the wear leveling function, valid data stored in one or more blocks with a relatively large number of erasures (number of writes) is copied to one block with a relatively small number of erasures and an erase process is performed on each of the one or more copy source blocks.
As a method of reducing a processor load in append-type MVCC, a method of offloading at least a portion of processes by a DBMS to an FM device is conceivable. However, such a method is not known. Moreover, a technique according to PTL 1 is known as a technique for reducing a processor load for snapshot management. According to PTL 1, at least a portion of snapshot management is offloaded to an FM package. Specifically, the FM package (FM device) manages generation numbers of snapshots. A storage controller receives a read request specifying a generation number from a host apparatus and transmits a snapshot acquisition request specifying the generation number to the FM device.